package com.ctsi.system.service.api;

import com.ctsi.system.api.IDictionaryTreeData;

import java.util.List;
import java.util.Map;

/**
 * @author: zhangjw
 * @Date: 2018/10/12 18:02
 * @Description:
 */
public interface DictionayTreeServiceProxy {


    public String getDictCode(String type,String value);

    public String getDictValue(String type,String code);

    /**
     * 查询type类型的字典数据
     *
     * @return
     * 			返回DictionaryData对象的List
     */
    public List<IDictionaryTreeData> getDictList(String type) ;

    public List<IDictionaryTreeData> getDictListByParent(String type,String parentId) ;

    /**
     * 通过字典数据的分类和编码查询出一条字典数据
     * @param type
     * @param code
     * @return
     * 			返回字典数据对象DictionaryData
     */
    public IDictionaryTreeData getDictDataByCode(String type,String code);

    /**
     * 通过字典数据的分类和字典数据值查询出一条字典数据
     * @param type
     * @param value
     * @return
     * 			返回字典数据对象DictionaryData
     */
    public IDictionaryTreeData getDictDataByValue(String type,String value);

    /**
     * 通过字典数据的分类和字典数据值查询出一组字典数据
     * @param type
     * @param value
     * @return  返回字典数据对象DictionaryData集合
     */
    public List<IDictionaryTreeData>  getDictDataListByValue(String type,String value);

    /**
     * 查询type类型字典数据
     * @param type
     * @return
     * 			返回Map<String key,String value>
     */
    public Map<String, String> getDictMap(String type,String parentId) ;

    public Map<String, String> getAllDictMap(String type) ;

    public IDictionaryTreeData getParentDict(String type, String code);

    public List<IDictionaryTreeData> getParentDictList(String type, String code);

    /**
     * 获取给定type和code的name链式
     * @param type
     * @param code
     * @return
     */
    public List<String> getTreeDataNameChain(String type, String code);

    /**
     *
     * @param type
     * @param code
     * @return
     */
    public List<IDictionaryTreeData> getTreeDataChain(String type,String code);

}
